#include "neurone.h"

neurone::neurone(int nb_input)
{
	if(nb_input > 0)
	{
	poids = new float[nb_input];
	inputs = new float[nb_input];
	}
	else
		std::cout << "neurone avec 0 inputs, REALLY?" << std::endl;
}

neurone::~neurone()
{
	delete [] poids;
	delete [] inputs;
}

bool neurone::is_active() // actif si sa somme est > 0
{
	if(get_somme() > 0)
		return true;
	else 
		return false;
}

float neurone::get_somme()
{
	float somme = 0;
	for(int i = 0;i<sizeof(inputs);i++)
	{
		somme += inputs[i]*poids[i];
		//std::cout << inputs[i] << std::endl;
	}
	return somme;
}

bool neurone::set_input(int nb,float value) //return false si mauvais numero d input (out of range)
{
	if(nb < sizeof(inputs) )
	{
		inputs[nb] = value;
		return true;
	}
	else
		return false;

}

bool neurone::set_poids(int nb,float value)
{
	if(nb < sizeof(poids) )
	{
		poids[nb] = value;
		return true;
	}
	else
		return false;
}

int neurone::get_size()
{
	return sizeof(inputs);
}

float neurone::get_poids(int nb)
{
	return poids[nb];
}